ATA and ATAPI

C H A P T E R   1 0

ATA and ATAPI

This chapter presents the requirements and recommendations for ATA (AT Attachment), ATAPI (AT Attachment Packet Interface) controllers, and peripherals designed to work with the Microsoft Windows family of operating systems. ATA is commonly known as IDE (Integrated Drive Electronics).

Overview for IDE and ATAPI

This section summarizes the basic design requirements for Windows-compatible IDE hardware, including adapters, peripherals, and any device that uses an IDE controller.

The ATA/IDE interface is one of the most widely used in the PC world. Originally intended only for hard drives, IDE support is being extended to additional device types and performance features.

The major issues for IDE and ATAPI devices for PC 97 are the following:

IDE Controllers Requirements

This section summarizes the specifications and standards for Windows-compatible IDE controllers.

1. Compliance with ATA-2 specification

Required

Recommended: ATA3 compliance.

All IDE adapters (and peripherals) must meet the hardware and software design requirements listed in the current version of the AT Attachment 2 specification.

2. Support Int 13h Extensions in BIOS and option ROMs

Required

The Int 13h Extensions ensure correct support for high-capacity drives, consistent drive-letter mapping between real mode and protected mode, and other capabilities for both Windows 95 and Windows NT. Support for the "fixed disk access" subset of Int 13h Extensions must be provided in the system BIOS and in any option ROMs for storage devices that include BIOS support. The Int 13h Extensions are defined in "Int 13h Extension APIs" in the Layered Block Device Drivers section of the Windows 95 DDK.

3. Media Status Notification support v. 1.03 or higher

Required

The Microsoft specification for Media Status Notification support (v. 1.03 or higher) defines the protocol for ATA and ATAPI devices to use in communicating about the current state of removable media.

4. Dual IDE adapters run in Native mode with PCI IDE bus mastering

Required

Dual IDE devices allow for writing data to both devices with the expectation that the data is to be serialized outside of the device. If PCI IDE bus mastering is implemented, dual IDE adapters must be built to run in Native mode and must be compliant with the PCI IDE Controller Specification (revision 0.9, dated May 1994, or later versions). When a device is enabled, whether in Native or Compatibility mode, it must be able to report whether it is programmable in Native mode, so that Windows can move the device's resources if necessary.

Native mode is not required for integrated IDE in a south bridge multifunction device that supports Compatibility mode for Programmed Input/Output (PIO).

5. Dual IDE adapters use single FIFO with asynchronous access or dual FIFOs and channels

Required

PCI dual IDE adapters must be designed so that either channel might be used at any time - that is, the operating system does not have to serialize access between the primary and secondary channel at any time. This means that either the two channels are totally independent or that anything which is shared, such as a PIO read prefetch buffer, is protected by a hardware arbitrator.

A design implementing a single FIFO that uses a hardware solution to synchronize access to both channels meets this requirement if the design does not require a request on one channel be completed before the other can be started.

The Compaq, Intel, Phoenix BIOS Boot Specification (Section 5.0) defines the implementation for dual asynchronous channels.

Dual-channel controllers that require special software to serialize channel I/O for a single prefetch FIFO do not qualify for the "Designed for Microsoft Windows" logo. Such designs require serial access to one of four devices, defeating the primary advantage of asynchronous dual-channel controllers. Further, such devices are non-standard and require custom driver support. Microsoft strongly discourages introduction of non-standard IDE hardware, because it negatively impacts traditional compatibility of the IDE interface. Notice, however, that dual-channel controllers that do not require special software to serialize channel I/O do qualify for the logo.

6. Support for LBA in system BIOS

Required

To enable support for IDE disk drives larger than 528 MB, the system BIOS must use a logical block addressing (LBA) scheme that is compatible with the BIOS/CMOS and IDE register set constraints.

Although ATAPI was defined to be transparent to the BIOS, the BIOS must recognize the presence of ATAPI devices using the signature as defined in SFF 8020i. In some cases, without such support the BIOS might fail to configure the adapter if it does not see a device.

7. PCI IDE bus master DMA compliant with SFF 8038i

Recommended

The programming register set for PCI IDE bus master DMA is defined in Small Form Factor (SFF) 8038i. IDE drives should be compliant with SFF 8038i to ensure fully-featured hardware and Windows-compatible device driver support.

With ATAPI CD-ROM, PIO demands placed on the system CPU can have a negative impact on system performance and application processing, especially for multimedia. Bus master DMA IDE adapters, which leverage local bus data rates, can provide higher data rates and the ability to offload the system CPU from I/O transfers. Other factors that encourage the adoption of bus master DMA include the increased disk media transfer rates, plus the demands made by multitasking operating systems and multichannel/multidevice IDE configurations.

Note This will become a requirement in 1998.

8. Support for fast PIO modes

Required if no bus mastering

Note This is required if PCI IDE bus mastering is not implemented. This alternate implementation can be used instead of PCI IDE bus master DMA for PC 97.

Fast PIO mode timing is defined in ATA-2, but the BIOS support should set up fast PIO mode transfers to accommodate chip-specific implementations, because an industry-standard programming interface does not exist for setting up timing.

Various problems have been observed with 32-bit PIO adapters. Manufacturers who implement 32-bit PIO for IDE adapters must follow the ATA-2 signal protocol to ensure that data integrity is preserved and to eliminate potential problems with early ISR entry.

9. Support SFF 8020i Section 10.0 (Cable Select) for master-slave configuration

Required

SFF 8020i Section 10.0 (v. 1.2 or higher) defines the cabling and connectors required for automatic configuration of a device as master (dev0) or slave (dev1) on a given channel.

10. Pin 1 cable designation for connections

Required

Pin 1 orientation must be designated by one edge of the ribbon cable and also on the keyed connector of the IDE or ATAPI peripheral device.

Plug and Play for IDE Controllers and Peripherals

This section summarizes the Plug and Play requirements for IDE controllers and peripherals.

11. Plug and Play device identifier

Required

12. Dynamic resource configuration for all devices

Required

Changing or adding a controller to the system must not require changing jumpers or switches on either the controller or the system board.

13. Resource configuration per bus requirements

Required

Plug and Play resource configuration requirements are defined by the bus used by the IDE device, as defined in the related chapters in Part 3 of this guide. For nonPCI devices, the following is required:

14. 3F7h and 377h not claimed by IDE devices

Required

Although IDE device might use these addresses, 3F7h and 377h also contain registers used by the floppy disk controller. To prevent resource conflicts, these addresses must not be claimed as resources in device registers.

Power Management for IDE Devices

This section summarizes the specific power management requirements for IDE. Power management requirements for peripherals that use IDE are defined in the related device-class chapters in Part 4 of this guide.

15. Correct support for ATA STANDBY

Required

The IDE drive must implement the ATA STANDBY command according to the ATA standard to ensure that the drives are able to spin up properly after a STANDBY command.

16. Power requirements for bus and device

Required

The IDE channel must comply with the "Device Class Power Management Reference Specification" for the storage device class. Additional power management requirements are specified based on industry-defined standards for the bus used by the controller (such as PCI) and for the device. For information, see the chapter for the related bus class in Part 3 in this guide.

Design Features for IDE and ATAPI Peripherals

This section summarizes requirements related to specifications and standards for IDE and ATAPI peripherals.

ATAPI Peripheral General Requirements

This section defines the requirements for all ATAPI devices.

17. Compliant with SFF 8020i v. 1.2 or higher

Required

This specification defines standard hardware and software design guidelines for ATAPI devices. Notice additional requirements for BIOS support of Int 13 Extensions earlier in this chapter.

18. All ATAPI devices enumerated by BIOS compliant with SFF 8020i v. 2.5

Required

ATAPI specification SFF 8020i v. 2.5 defines the process for enumeration of all ATAPI devices.

19. Media Status Notification support v. 1.03 or higher

Required

The Microsoft specification for Media Status Notification support (v. 1.03 or higher) defines the protocol for ATA and ATAPI devices to use in communicating about the current state of removable media.

20. Automatic configuration of firmware based on CSEL configuration

Required

SFF 8020i Section 10.0 (v. 1.2 or higher) defines the cabling and connectors required for automatic configuration of a device as master (dev0) or slave (dev1) on a given channel. This required Cable Select (CSEL) support eliminates the need for master-slave jumpers on the drive.

The implementation for boot drive determination in multiple-drive systems is defined in the Compaq, Intel, Phoenix BIOS Boot Specification (Section 5.0). This is the format Windows operating systems will use as the consistent method for determining the boot drive as new bootable devices are introduced for PCs. The system designer can use an equivalent method for boot drive determination, but the method must ensure that the boot drive is recognized by the Windows 95 and Windows NT operating systems.

21. Pin 1 cable designation for connections

Required

Pin 1 orientation must be designated by one edge of the ribbon cable and also on the keyed connector of the IDE or ATAPI peripheral device.

22. ATAPI RESET supported in hardware, per SFF 8020i v. 1.2

Recommended

Ensure that the ATAPI RESET command is processed by the peripheral, even if the firmware state cannot be determined. Reset the controller by going into a power-up state (clear requests, signature present), except leave any nondefault Mode values in their current state and leave the DRV bit unchanged (Section 6.2 of SFF 8020i v. 1.2 or higher).

23. PCI IDE bus mastering compliant with SFF 8038i

Recommended

IDE devices should comply with Small Form Factor (SFF) 8038i to ensure fully-featured hardware and Windows-compatible device driver support.

Note This will become a requirement in 1998.

24. SMART-compliant drive uses SMART IOCTL API

Optional

The SMART IOCTL API Specification published by Compaq Computer Corporation and Microsoft Corporation (v. 1.1 or higher) describes the API for an application to issue SMART commands to an IDE drive under Microsoft Windows. In Windows 95, the API is implemented in a Vendor Specific Driver (VSD), Smartvsd.vxd.

IDE CD-ROM Peripheral Requirements

This section defines requirements for CD-ROM devices attached to an IDE adapter.

25. Compliant with SFF 8020i v. 1.2 (or higher)

Required

CD-ROM drives attached to the PC system must support the hardware and protocols documented in the ATA Packet Interface for CD-ROMs, SFF-8020i v. 1.2 (or higher).

26. Support multisession and compatibility forms of READ_TOC

Required

Implement both multisession forms of the READ_TOC command (01b and 10b), as well as the compatibility form (00b). This ensures complete support for multisession capabilities for CD-ROM.

IDE Floppy Drive Peripheral Requirements

This section presents the requirements for IDE floppy drives.

27. IDE floppy drive compliant with SFF 8020i v. 2.6

Required

This version of the SFF 8020i specification defines implementation requirements that the Windows operating system supports, including support for ATA floptical drives.

IDE DVD Peripheral Requirements

This section presents the requirements for DVD that uses IDE. For complete requirements related to DVD, see the "Storage and Related Peripherals" chapter in Part 4 of this guide.

28. IDE DVD compliant with SFF 8020i v. 3.0

Required

This version of the SFF 8020i specification defines implementation requirements that the Windows operating system supports.

References for IDE and ATAPI

This section lists some of the publications, services, and tools available to help build hardware that work with Windows operating systems.

Media Status Notification specifications
SMART IOCTL API Specification v. 1.1 or higher

http://www.microsoft.com/hwdev/specs/

ATA 2 [X3T9.2 948D]
ATA Packet Interface for CD-ROM, SFF 8020I

Global Engineering Documents
15 Inverness Way East
Englewood, CO 80112-5704
Phone: (800) 854-7179
Outside U.S. and Canada: (303) 792-2181
Fax: (303) 397-2740

Compaq, Intel, Phoenix BIOS Boot Specification v. 1.01

http://www.ptltd.com/techs/specs.html

Programming Interface for Bus Master IDE, SFF 8038i Rev. 1.0
and other Small Form Factor Committee (SFF) documents

FaxAccess: (408) 741-1600 (faxback)

Windows 95 DDK and Windows NT DDK

MSDN Professional membership
The Windows 95 DDK includes the "Int 13h Extensions API."

Checklist for ATA and ATAPI


IDE Controllers Requirements
1. Compliance with ATA-2 specification
Required
2. Support Int 13h Extensions in BIOS and option ROMs
Required
3. Media Status Notification support v. 1.03 or higher
Required
4. Dual IDE adapters run in Native mode with PCI IDE bus mastering
Required
5. Dual IDE adapters use single FIFO with asynchronous access or dual FIFOs and channels
Required
6. Support for LBA in system BIOS
Required
7. PCI IDE bus master DMA compliant with SFF 8038i
Recommended
8. Support for fast PIO modes
Required if no bus mastering
9. Support SFF 8020i Section 10.0 (Cable Select) for master-slave configuration
Required
10. Pin 1 cable designation for connections
Required

Plug and Play for IDE Controllers and Peripherals
11. Plug and Play device identifier
Required
12. Dynamic resource configuration for all devices
Required
13. Resource configuration per bus requirements
Required
14. 3F7h and 377h not claimed by IDE devices
Required

Power Management for IDE Devices
15. Correct support for ATA STANDBY
Required
16. Power requirements for bus and device
Required

Design Features for IDE and ATAPI Peripherals
ATAPI Peripheral General Requirements
17. Compliant with SFF 8020i v. 1.2 or higher
Required
18. All ATAPI devices enumerated by BIOS compliant with SFF 8020i v. 2.5
Required
19. Media Status Notification support v. 1.03 or higher
Required
20. Automatic configuration of firmware based on CSEL configuration
Required
21. Pin 1 cable designation for connections
Required
22. ATAPI RESET supported in hardware, per SFF 8020i v. 1.2
Recommended
23. PCI IDE bus mastering compliant with SFF 8038i
Recommended
24. SMART-compliant drive uses SMART IOCTL API
Optional

IDE CD-ROM Peripheral Requirements
25. Compliant with SFF 8020i v. 1.2 (or higher)
Required
26. Support multisession and compatibility forms of READ_TOC
Required

IDE Floppy Drive Peripheral Requirements
27. IDE floppy drive compliant with SFF 8020i v. 2.6
Required

IDE DVD Peripheral Requirements
28. IDE DVD compliant with SFF 8020i v. 3.0
Required